High quality object rendering in computer graphics with shading and surface reflections requires an accurate model of object surfaces and their surface normals. However, when objects are stored in a sampled volume, as in Volume Graphics, such a description of the surface does not exist and the surface must be estimated from the sampled data. There are a number of ways to estimate surfaces from sampled data as described, for example, by A. Kaufman, in "Volume Visualization", IEEE Computer Society Press, 1991. However, according to this article, it is stated that compared with the results achieved in surface shading, volumetric shading is still rudimentary, exhibiting problems such as accuracy of the normal values, ambiguity, discretization artifacts, and aliasing. The conclusion from this article is that volume visualization still lacks a simple yet general paradigm that provides high fidelity shading for natural appearance and optimal recognition.
Volumetric data can be stored as grayscale data, where the sample values take on a range of intensities, or as binary data, where one value is given to points inside an object and a different value is given to points outside the object. Surface estimation is especially hard for binary sampled data because the intensity values change abruptly at object surfaces. These abrupt intensity changes result in high frequency components in the intensity data at object surfaces. High spatial frequencies mean that no sampling rate will be large enough to guarantee that the object and its surface normals can be accurately reconstructed. The result is jagged edges and aliasing artifacts in shaded volume rendered images.
Existing rendering methods that estimate surface normals from binary sampled data apply local low-pass filters to the data that remove high spatial frequencies and smooth out jagged binary surfaces. However, there are two problems with this approach. First, in addition to smoothing out the object surface, a low pass filter smoothes out important features such as cracks and thin protrusions. Second, a local filter is often not sufficient to achieve a smooth surface. This is the case, for example, when the surface is at a shallow angle to the sampling grid of the volume or when volumetric data is sampled more frequently within planar slices than between slice planes. In these cases, the object surface appears to be terraced, with planar surface regions separated by sudden elevation changes. Local filters can round out the elevation changes but they do not remove the terraces unless the filter size is as large as the width of the terrace. In medical data, where terraces can be tens of pixels wide, a local filter large enough to remove terraces would also unacceptably smooth out important detail from the rendered image.
An alternative to estimating surface normals from volume data during rendering is to reconstruct the surface as a polygonal model and render it using polygon rendering. The most common method for constructing a polygonal model from volumetric data is to use the Marching Cubes algorithm, described in "Marching Cubes: a High Resolution 3D Surface Construction Algorithm" in Proceedings for Siggraph'87, by W. Lorensen and H. Cline. While this algorithm is designed for grayscale data, it can be used to construct surfaces from binary data by low-pass filtering the data and then applying Marching Cubes to the filtered data. This technique is often used to create surface models from binary-segmented medical image data.
However, there are two problems with this approach. First, as stated above, the low-pass filtering will not remove terracing artifacts without removing significant detail from the data. Hence, the terracing artifacts show up in the polygonal model or the surface is unduly smoothed. Second, Marching Cubes produces models that contain a very large number of polygons. In order to further smooth out the surface and reduce the number of triangles in the model, the polygonal model can be smoothed and decimated using a variety of triangle reduction methods such as that described in "Decimation of Triangle Meshes", in Proceedings Siggraph'92, by W. Schroeder, W. Lorensen, and S. Linthicum. However, these methods are applied to the triangle model without considering the original binary data and can result in the elimination of important structural detail from the model.